package com.youlai.boot.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.youlai.boot.system.model.dto.AuditRequestDTO;
import com.youlai.boot.system.model.dto.EmissionReductionDTO;
import com.youlai.boot.system.model.entity.User;
import com.youlai.boot.system.model.form.RecycleRequestForm;
import com.youlai.boot.system.model.entity.RecycleRequest;

import com.baomidou.mybatisplus.extension.service.IService;
import com.youlai.boot.system.model.entity.WasteType;
import com.youlai.boot.system.model.query.RecycleRequestQuery;
import com.youlai.boot.system.model.vo.RecycleRequestVO;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.List;

/**
 * 回收请求主服务类
 *
 * @author youlaitech
 * @since 2025-02-23 21:14
 */
public interface RecycleRequestService extends IService<RecycleRequest> {

    Boolean initUserRecycleRequest(RecycleRequestForm recycleRequestForm);

    List<WasteType> getAllWasteType();

    RecycleRequestForm getRecycleRequestFormData(Long id);

    HashMap<String, List<RecycleRequestVO>> getPage(RecycleRequestQuery queryParams);

    Boolean updateUserRecycleRequest(RecycleRequestForm recycleRequestForm);

    Boolean applyCancelRequest(RecycleRequestForm recycleRequestForm);

    List<EmissionReductionDTO> calculateReductions(Integer periodType);
}
